package com.broada.apm.dao;

import java.util.List;

import com.broada.apm.model.DictMetrics;
import com.broada.apm.model.L7ModuelPanel;
import com.broada.apm.model.L7moduleMetric;

public interface IndicatorDao {

	/**
	 * 获取所有指标项
	 * 
	 * @return
	 */
	public List<DictMetrics> listItems();

	/**
	 * 获取某个协议的所有指标项
	 * 
	 * @return
	 */
	public List<L7ModuelPanel> getPanleIndicatorItemByProtocol(L7ModuelPanel panel);
	
	
	/**
	 * 获取某个协议的所有指标项
	 * 
	 * @return
	 */
	public List<DictMetrics> getDictMetricsByProtocol(int l7protocol);
	
	public DictMetrics getItemById(int itemId);

	public DictMetrics getDictMetricsByCode(String code);

	public void addDictMetrics(DictMetrics dictMetrics);

	public void addL7ModuleMetric(L7moduleMetric l7Metric);

	public void addL7ModulePanel(L7ModuelPanel panel);

	public List<L7moduleMetric> getL7ModuleMetric(L7moduleMetric l7Metric);

	public List<L7ModuelPanel> getL7ModulePanel(L7ModuelPanel panel);

	public void deleteMetricsByModuleId(String moduleId);

	public void updateDictMetrics(DictMetrics dictMetrics);

	public void updateL7ModuleMetric(L7moduleMetric l7Metric);

	public void deleteL7PanelByModuleId(String moduleId);

	public void updateL7ModulePanel(L7ModuelPanel panel);
	
	public List<L7moduleMetric> listItemsByCondition(L7moduleMetric conn);

	public void updateResShowIndicator(String targetId, String panelId, List<Integer> metricIds);

	public List<Integer> getResShowIndicator(String targetId, String panelId);

}
